#ifndef HPLC_QINFINE_DETETOR_PROTOCOL_H
#define HPLC_QINFINE_DETETOR_PROTOCOL_H

#include "common/hplcqinfineprotocolcommon.h"
#include "common/hplcqinfinesendcommonsystempacket.h"
#include "hplcqinfinedetectorsendpacket.h"
#include "hplcqinfinedetectorsendsystempacket.h"
#include "modulehplcdetectordefine.h"

namespace hplc
{
namespace qinfine
{

class HplcQinfineDetectorProtocolData;
class HplcQinfineDetectorProtocol : public HplcQinfineProtocolCommon
{
    Q_OBJECT
public:
    HplcQinfineDetectorProtocol(DetectorParam &param, QObject *parent = nullptr);
    virtual ~HplcQinfineDetectorProtocol();

    virtual bool setProtocolCmd(int id, QVariant &var) override;
    virtual bool getProtocolCmd(int id, QVariant &var) override;

    DetectorSendPacket *getDetectorSender();
    HplcQinfineDetectorSendSystemPacket *getDetectorSystemSender();

protected:
    virtual void setModel(quint8 model) override;

    HplcQinfineDetectorProtocol(HplcQinfineDetectorProtocolData &data, DetectorParam &param, QObject *parent = nullptr);

private:
    hplc::DetectorParam			*m_param = nullptr;
};

} // qinfine
} // hplc

#endif // HPLC_QINFINE_DETETOR_PROTOCOL_H
